﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using RoboTrocity.Code.ObjectStates;

namespace RoboTrocity {
	class EntityFactory {

		/// <summary>
		/// Returns a player object
		/// </summary>
		/// <returns></returns>
		public static Player getPlayer() {
			Player retPlayer = new Player();
			retPlayer.Name = "Player";
			retPlayer.addState(new StandState(retPlayer, new Sprite("playerStanding")));
			retPlayer.addState(new WalkState(retPlayer, new Sprite("playerWalking")));
			retPlayer.addState(new JumpState(retPlayer, new Sprite("playerJumping")));
			retPlayer.addState(new FallState(retPlayer, new Sprite("playerFalling")));
			retPlayer.addState(new ClimbingState(retPlayer, new Sprite("playerClimbing")));
			retPlayer.Height = 80;
			retPlayer.Width = 80;
			return retPlayer;
		}

		/// <summary>
		/// Gets the first type of enemy.
		/// </summary>
		/// <returns></returns>
		public static Enemy getTypeOneEnemy() { //need to define enemies better
			Enemy retEnemy = new Enemy(new Point(450, 450));
			retEnemy.Name = "EnemyOne";
			retEnemy.addState(new StandState(retEnemy, new Sprite("Enemy1")));
			retEnemy.DispSprite.addCollisionBox(new CollisionBox(11, 2, 14, 21, CollisionBox.BoxType.ATTACK), 1);
			retEnemy.DispSprite.addCollisionBox(new CollisionBox(6, 4, 37, 65, CollisionBox.BoxType.HIT), 2);
			retEnemy.setStat("scrapamount", 10);
			retEnemy.Height = 80;
			retEnemy.Width = 80;
			return retEnemy;
		}
	}
}
